package cn.edu.jxust.core.infrastructure.mapper;

import cn.edu.jxust.common.domain.entity.Account;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

/**
 * @author QiuKangming
 * @since 2020-06-29
 */

public interface AccountMapper extends BaseMapper<Account> {

    /**
     * 查询用户, 因为需要查询出已被禁用的账户
     * @param username 用户名
     * @return Account
     */
    @Select("SELECT * FROM t_account WHERE username = #{username}")
    Account getByAccName(String username);

    /**
     * 根据 id 获取账户名称
     * @param id 账户id号
     * @return String
     */
    @Select("SELECT username FROM t_account WHERE id = #{id} AND status = 1")
    String getAccNameById(Integer id);

    /**
     * 根据账户名判断用户是否存在
     * @param username 用户名
     * @return int 个数
     */
    @Select("SELECT COUNT(1) FROM t_account WHERE username = #{username} AND role_id != 0 AND status = 1")
    int isExist(String username);

    /**
     * 给账户重置密码
     * @param pwd 默认密码
     * @param username 用户名
     * @param flg 标志
     * @return int 影响行数
     */
    @Update("UPDATE t_account SET password = #{pwd} WHERE username = #{username} AND status = #{flg}")
    int resetPwd(String pwd, String username, Integer flg);

}
